﻿/**********************************************************************
 * @file   FITKAcousticsVTKGraphObjectLoadImport.h
 * @brief  导入载荷渲染对象
 * @author BaGuijun (baguijun@163.com)
 * @date   2024-12-11
 *********************************************************************/
#ifndef __FITKAcousticsVTKGraphObjectLoadImport_H__
#define __FITKAcousticsVTKGraphObjectLoadImport_H__

#include "FITKAcousticsVTKGraphObjectPictureBase.h"

#include "FITKAcousticsVTKGraphAdaptorAPI.h"

 // Forward declaration
namespace Acoustics
{
    class FITKAcousticsAbstractLoad;
}

namespace Exchange
{
    /**
     * @brief  导入载荷渲染对象
     * @author BaGuijun (baguijun@163.com)
     * @date   2024-12-11
     */
    class FITKACOUSTICSGRAPHADAPTORAPI FITKAcousticsVTKGraphObjectLoadImport : public FITKAcousticsVTKGraphObjectPictureBase
    {
        // Regist
        FITKGraphObjectRegist(FITKAcousticsVTKGraphObjectLoadImport, FITKAcousticsVTKGraphObjectPictureBase);
        FITKCLASS(Exchange, FITKAcousticsVTKGraphObjectLoadImport);
    public:
        /**
         * @brief    构造函数
         * @param[i] power                载荷对象
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-11
         */
        FITKAcousticsVTKGraphObjectLoadImport(Acoustics::FITKAcousticsAbstractLoad* power);
        /**
         * @brief    析构函数
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-11
         */
        ~FITKAcousticsVTKGraphObjectLoadImport() = default;
        /**
         * @brief    获取数据对象可见性
         * @return   bool                是否可见
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-11
         */
        bool getDataVisibility() override;
        /**
         * @brief    刷新重写
         * @param[i] forceUpdate        是否强制刷新
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-16
         */
        virtual void update(bool forceUpdate = false) override;
    private:
        /**
         * @brief    初始化
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-11
         */
        void init() override;
        /**
         * @brief    判断数据集是否有效
         * @return   bool                是否有效
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-11
         */
        bool generateDataSet() override;
        /**
         * @brief    获取数据对象是否启用
         * @return   bool                是否启用
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-11
         */
        bool getDataEnabled() override;
    };
}   // namespace Exchange

#endif // __FITKAcousticsVTKGraphObjectLoadImport_H__
